/*
 * NodoABB.h
 *
 *  Created on: 14/10/2011
 *      Author: diego
 */

using namespace std;
#include <stdlib.h>
#include <iostream>
#include <string>
#include "Lista.h"
#include "Nodo.h"
#include "IteradorLista.h"
#include "ElementoInexistenteException.h"
#include "MonitorMemoria.h"
#include "Registros.h"

#ifndef NODOABB_H_
#define NODOABB_H_


class NodoABB {
private:
	string* termino;
	int frec_t;
	int cant_documentos;
	NodoABB* hijoDer;
	NodoABB* hijoIzq;
	reg_docs_variable* ultimo_nodo_lista;
	Lista<reg_docs_variable*>* lista;

public:
	NodoABB(string* termino, int doc_id);
	NodoABB* getHijoIzq();
	NodoABB* getHijoDer();
	void setHijoDer(NodoABB* nodo);
	void setHijoIzq(NodoABB* nodo);
	void incrementarFrecuencias(int doc_id, MonitorMemoria* mem);
	string* getTermino();
	int getFrecuencia();
	int getCantDocs();
	IteradorLista <reg_docs_variable*> getIterador();
	Lista<reg_docs_variable*>* getLista();
	virtual ~NodoABB();
};

#endif /* NODOABB_H_ */
